import {
	ref
} from 'vue'

/**
 * 使用回答钩子函数管理计时器状态。
 * 
 * @returns {Object} 返回一个包含时间、开始计时、停止计时和清除计时器的方法的对象。
 */
const useAnswerHook = () => {

	const minutes = ref(0); // 分钟数
	const seconds = ref(0); // 秒数
	const time = ref("00 : 00") // 格式化的时间字符串

	const timerInterval = ref(); // 计时器的间隔标识

	/**
	 * 开始计时器。
	 */
	const startTimer = () => {
		timerInterval.value = setInterval(() => {
			seconds.value++;
			if (seconds.value >= 60) {
				minutes.value++;
				seconds.value = 0;
			}
			// 更新格式化的时间字符串
			time.value =
				`${minutes.value.toString().padStart(2, '0')} : ${seconds.value.toString().padStart(2, '0')}`
		}, 1000)
	}


	/**
	 * 停止计时器。
	 */
	const stopTimer = () => {
		if (!timerInterval.value) return
		clearInterval(timerInterval.value)
		timerInterval.value = undefined
	}

	/**
	 * 清除计时器状态，重置时间为 00:00。
	 */
	const clearTimer = () => {
		minutes.value = 0
		seconds.value = 0
		time.value = "00 : 00"
	}

	return {
		time,
		startTimer,
		stopTimer,
		clearTimer
	}

}

export default useAnswerHook;